#pragma once
#include <semaphore.h>

class sem
{
public:
	sem(int val)
	{
		sem_init(&_sem, 0, val);
	}

	void p()
	{
		sem_wait(&_sem);
	}

	void v()
	{
		sem_post(&_sem);
	}

	~sem()
	{
		sem_destroy(&_sem);
	}
private:
	sem_t _sem;
};

